From: Keir Fraser Date: Mon, 8 Jun 2009 11:24:14 +0000 (+0100) Subject: xend: pci: fix extract_the_exact_pci_names() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13787 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=54c07de022d58394b97a1cfdaae733662d974dc6;p=xen.git xend: pci: fix extract_the_exact_pci_names() Changeset 19726: d8b7b51f482b neglects the case pci_names could be types.ListType. Signed-off-by: Dexuan Cui --- diff --git a/tools/python/xen/util/pci.py b/tools/python/xen/util/pci.py index f4f9f7bfcf..2cd5f73192 100644 --- a/tools/python/xen/util/pci.py +++ b/tools/python/xen/util/pci.py @@ -155,7 +155,14 @@ def parse_pci_name(pci_name_string): def extract_the_exact_pci_names(pci_names): result = [] - pci_names = pci_names.split() + + if isinstance(pci_names, types.StringTypes): + pci_names = pci_names.split() + elif isinstance(pci_names, types.ListType): + pci_names = re.findall(PCI_DEV_REG_EXPRESS_STR, '%s' % pci_names) + else: + raise PciDeviceParseError('Invalid argument: %s' % pci_names) + for pci in pci_names: # The length of DDDD:bb:dd.f is 12. if len(pci) != 12: @@ -503,7 +510,7 @@ class PciDevice: return [self.name] dev_list = dev.find_all_devices_behind_the_bridge(ignore_bridge) - dev_list = extract_the_exact_pci_names('%s' % dev_list) + dev_list = extract_the_exact_pci_names(dev_list) return dev_list def do_secondary_bus_reset(self, target_bus, devs):